#ifndef REGISTERPAGE_H
#define REGISTERPAGE_H

#include <QWidget>
#include <QLineEdit>
#include <QPushButton>

namespace Ui {
class RegisterPage;
}

/**
 * @brief 注册页面类，处理用户注册功能
 */
class RegisterPage : public QWidget
{
    Q_OBJECT

public:
    /**
     * @brief 构造函数，初始化注册页面
     * @param parent 父窗口指针
     */
    explicit RegisterPage(QWidget *parent = nullptr);

    /**
     * @brief 析构函数，释放资源
     */
    ~RegisterPage();

signals:
    /**
     * @brief 注册成功信号，携带用户名
     * @param username 用户名
     */
    void registerSuccess(const QString &username);

    /**
     * @brief 返回登录页面信号
     */
    void backToLogin();

private slots:
    /**
     * @brief 注册按钮点击事件处理
     */
    void onRegisterClicked();

    /**
     * @brief 返回按钮点击事件处理
     */
    void onBackClicked();

private:
    Ui::RegisterPage *ui;             ///< UI对象指针
    QLineEdit *m_usernameEdit;        ///< 用户名输入框
    QLineEdit *m_passwordEdit;        ///< 密码输入框
    QLineEdit *m_confirmEdit;         ///< 确认密码输入框
    QPushButton *m_registerBtn;       ///< 注册按钮
    QPushButton *m_backBtn;           ///< 返回按钮

    /**
     * @brief 初始化UI组件
     */
    void initUI();

    /**
     * @brief 验证注册输入
     * @return 验证通过返回true，否则返回false
     */
    bool validateInput();
};

#endif // REGISTERPAGE_H

